(() => {
    // 定义一个类，类中的属性值的类型是不确定的，方法中的参数的返回值也是不确定的！
    // 定义一个泛型类
    class GenericNumber<T>{
        // 默认的属性的值的类型是泛型类型
        defaultValue: T
        add: (x: T, y: T) => T
    }

    // 在实例化类的对象的时候，在确定泛型的类型
    const g1 = new GenericNumber<number>()
})()